package com.jrx.anytxn.transaction.dto.loan;

import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 *  贷款确认请求实体
 * @author  haopu.zheng
 * date  2019/7/22
 * @version V1.0
 **/
public class LoanConfirmReq extends LoanReq implements Serializable {

    /**
     * 外部合同号
     */
    @ApiModelProperty(value = "外部合同号")
    @Size(max=60, message = "合同号不能超过60位")
    private String  contractNumber;
    /**
     * 贷款用途
     */
    @ApiModelProperty(value = "贷款用途",required = true)
    @NotEmpty (message = "贷款用途不允许空")
    @Size(max=36, message = "贷款用途不能超过36位")
    private String loanUse;
    /**
     * 放款银行卡号
     */
    @ApiModelProperty(value = "放款银行卡号",required = true)
    @NotEmpty (message = "放款银行卡号不允许空")
    @Size(max=32, message = "放款银行卡号不能超过32位")
    private String cardNumber;



    /**
     * 交易描述
     */
    @ApiModelProperty(value = "交易描述")
    @Size(max=60, message = "交易描述不能超过60位")
    private String description;

    /**
     * 交易描述
     */
    @ApiModelProperty(value = "还款日期")
    private Date PaymentDueDate;

    /**
     * 是否受托支付
     */
    @ApiModelProperty(value = "是否受托支付")
    private String entrustedPayment;

    /**
     * 收款账号开户行行号
     */
    @ApiModelProperty(value = "收款账号开户行行号")
    private String payeeBank;

    /**
     * 收款账号开户行行名
     */
    @ApiModelProperty(value = "收款账号开户行行名")
    private String payeeBankName;

    /**
     * 收款方账户名
     */
    @ApiModelProperty(value = "收款方账户名")
    private String payeeName;

    /**
     * 借款合同id
     */
    @ApiModelProperty(value = "借款合同id")
    private String contractId;

    @ApiModelProperty("优惠金额")
    private BigDecimal trialAmount;

    /**
     * 扩展字段
     */
    @ApiModelProperty("扩展字段")
    private String extFields;

    /**
     * 额度冻结流水号
     */
    private String frozeNo;
    /**
     * 支付流水号
     * 表字段:serial_no
     */
    private String serialNo;

    public BigDecimal getTrialAmount() {
        return trialAmount;
    }

    public void setTrialAmount(BigDecimal trialAmount) {
        this.trialAmount = trialAmount;
    }

    public String getContractNumber() {
        return contractNumber;
    }

    public void setContractNumber(String contractNumber) {
        this.contractNumber = contractNumber;
    }

    public String getLoanUse() {
        return loanUse;
    }

    public void setLoanUse(String loanUse) {
        this.loanUse = loanUse;
    }
    public String getCardNumber() {
        return cardNumber;
    }

    public void setCardNumber(String cardNumber) {
        this.cardNumber = cardNumber;
    }


    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public Date getPaymentDueDate() {
        return PaymentDueDate;
    }

    public void setPaymentDueDate(Date paymentDueDate) {
        PaymentDueDate = paymentDueDate;
    }

    public String getEntrustedPayment() {
        return entrustedPayment;
    }

    public void setEntrustedPayment(String entrustedPayment) {
        this.entrustedPayment = entrustedPayment;
    }

    public String getPayeeBank() {
        return payeeBank;
    }

    public void setPayeeBank(String payeeBank) {
        this.payeeBank = payeeBank;
    }

    public String getPayeeBankName() {
        return payeeBankName;
    }

    public void setPayeeBankName(String payeeBankName) {
        this.payeeBankName = payeeBankName;
    }

    public String getPayeeName() {
        return payeeName;
    }

    public void setPayeeName(String payeeName) {
        this.payeeName = payeeName;
    }

    public String getContractId() {
        return contractId;
    }

    public void setContractId(String contractId) {
        this.contractId = contractId;
    }

    /**
     * 获取 扩展字段
     *
     * @return extFields 扩展字段
     */
    public String getExtFields() {
        return this.extFields;
    }

    /**
     * 设置 扩展字段
     *
     * @param extFields 扩展字段
     */
    public void setExtFields(String extFields) {
        this.extFields = extFields;
    }

    public String getFrozeNo() {
        return frozeNo;
    }

    public void setFrozeNo(String frozeNo) {
        this.frozeNo = frozeNo;
    }

    public String getSerialNo() {
        return serialNo;
    }

    public void setSerialNo(String serialNo) {
        this.serialNo = serialNo;
    }
}
